#!/bin/bash
#
# Trabajo Practico 1 Ejercicio 2
# Entrega número: 1
#
# - Integrantes:
#	- Martinez, Guillermo	DNI: 34510461
#	- Meli, Marcos		DNI: 31832759
#	- Reyes, Leandro	DNI: 34213699
#	- Rodriguez, Lucas	DNI: 34265017
#	- Cortez, Martin	DNI: 30440023
#

showError()
{
   echo "==> Error de sintaxis."
   echo "Sintaxis para obtener ayuda:"
   echo "   $0 -h"
}

checkError()
{
   if [ $1 -lt 2 ]
   then
      if [ $1 -eq 1 ] && ([ $2 = "-h" ] || [ $2 = "-?" ])
      then
         checkHelp $2
      fi
      showError
      exit 1
   fi
}

showHelp()
{
   echo "==> Ayuda - $0"
   echo "Encriptador - Desencriptador de números"
   echo " Sintaxis para encriptar:"
   echo "   $0 -e numero_a_encriptar"
   echo " Sintaxis para desencriptar:"
   echo "   $0 -d numero_a_desencriptar"
   echo " Sintaxis para obtener ayuda:"
   echo "   $0 -h"
   echo " Sintaxis para obtener versión y ayuda:"
   echo "   $0 -?"
}

checkHelp()
{
   case $1 in
   -h)
      showHelp
   ;;
   -?)
      OpcionStandar
   ;;
   esac
   exit 0
}

OpcionStandar()
{ #Opción standard ‘-?’ que indica el número de versión y las formas de llamada.
   echo "$0 - Version 1.0"
   showHelp
}

# comienzo de programa, chequeo parametros
checkError $# $1

aux=`expr $2 + 0 2> /dev/null`
if [ $? -ne 0 ]
then
   echo "Se intenta codificar/decodificar algo distinto a un número"
   showError
   exit 1
fi

case $1 in
"-e")
   for((i=1;i<=${#2};i++))
   do
      aux=`expr substr $2 $i 1`
      aux=`expr $aux + 1`
      aux=`expr $aux % 10`
      str="$str""$aux"      
   done
;;
"-d")
   for((i=1;i<=${#2};i++))
   do
      aux=`expr substr $2 $i 1`
      aux=`expr $aux - 1`
      if [ $aux -lt 0 ]
	then
          aux=9
      fi
      str="$str""$aux"
    done
;;
*)
   echo "Argumento $1 invalido"
   showError
   exit 1
esac

echo "$str"

exit 0

#~ FIN DE ARCHIVO
